#ifndef DS3231_RTC_H
#define DS3231_RTC_H

#include <stdint.h>
#include <stdbool.h>

// 包含必要的FreeRTOS头文件
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "board.h"

// DS3231 I2C地址
#define DS3231_I2C_ADDR 0x68

// DS3231寄存器地址
#define DS3231_REG_SECONDS 0x00
#define DS3231_REG_MINUTES 0x01
#define DS3231_REG_HOURS 0x02
#define DS3231_REG_DAY 0x03
#define DS3231_REG_DATE 0x04
#define DS3231_REG_MONTH 0x05
#define DS3231_REG_YEAR 0x06
#define DS3231_REG_CONTROL 0x0E
#define DS3231_REG_STATUS 0x0F

typedef void (*ds3231_int_callback_t)(void);
// 函数声明
bool ds3231_rtc_init(void);

bool ds3231_get_time(rtc_time_t *time);
bool ds3231_set_time(const rtc_time_t *time);
void ds3231_callback_register(void (*callback)(void)); // 添加这一行

#endif // DS3231_RTC_H
